package cn.stylefeng.guns.modular.hx.storage.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

/**
 * <p>
 * 拣货单表
 * </p>
 * @author zhucx
 * @since 2023-09-05
 */
@Data
@TableName("hx_storage_out")
public class HxStorageOut implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 客户id
     */
    @TableField("customer_id")
    private Long customerId;

    /**
     * 客户名称
     */
    @TableField("customer_name")
    private String customerName;

    /**
     * 单据状态（待拣货、拣货中、待复核、复核中、已完成）
     */
    @TableField("storage_state")
    private String storageState;

    /**
     * 发车状态（未发车、已发车）
     */
    @TableField("start_state")
    private String startState;

    @TableField("agv_no")
    private String agvNo;

    /**
     * 配送日
     */
    @TableField("peisong_time")
    private String peisongTime;

    /**
     * 订单号
     */
    @TableField("storage_number")
    private String storageNumber;

    /**
     * 单据类型（STORE_OUT(门店调出),RETURN(采购退货),WHOLESALE(批发销售),ADJUST_OUT(调整出库),TRANSFER(仓间调拨)）
     */
    @TableField("order_type")
    private String orderType;

    /**
     * 新零帮发货门店id
     */
    @TableField("xlb_set_unit_id")
    private String xlbSetUnitId;

    /**
     * 发货单位id
     */
    @TableField("set_unit_id")
    private Long setUnitId;

    /**
     * 发货单位
     */
    @TableField("set_unit")
    private String setUnit;

    /**
     * 新零帮发货仓库id
     */
    @TableField("xlb_set_warehouse_id")
    private String xlbSetWarehouseId;

    /**
     * 发货仓库id
     */
    @TableField("set_warehouse_id")
    private Long setWarehouseId;

    /**
     * 发货仓库
     */
    @TableField("set_warehouse")
    private String setWarehouse;

    /**
     * 新零帮收货客户id
     */
    @TableField("xlb_client_id")
    private String xlbClientId;

    /**
     * 收货客户id
     */
    @TableField("get_unit_id")
    private Long getUnitId;


    /**
     * 收货客户编码
     */
    @TableField("get_unit_number")
    private String getUnitNumber;


    /**
     * 收货客户
     */
    @TableField("get_unit")
    private String getUnit;

    /**
     * 库区id
     */
    @TableField("area_id")
    private Long areaId;

    /**
     * 库区
     */
    @TableField("area_name")
    private String areaName;

    /**
     * 商品数
     */
    @TableField("goods_num")
    private String goodsNum;

    /**
     * 应拣数量
     */
    @TableField("out_num")
    private String outNum;

    /**
     * 实拣数量
     */
    @TableField("real_num")
    private String realNum;

    /**
     * 体积
     */
    @TableField("out_volume")
    private String outVolume;

    /**
     * 是否拆零
     */
    @TableField("scattered")
    private String scattered;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 创建人
     */
    @TableField("create_user_name")
    private String createUserName;

    /**
     * 分拣员
     */
    @TableField("storage_user_name")
    private String storageUserName;

    /**
     * 分拣员
     */
    @TableField("storage_user")
    private String storageUser;

    /**
     * 分拣时间
     */
    @TableField("storage_time")
    private Date storageTime;

    /**
     * 分拣完成时间
     */
    @TableField("storage_complete_time")
    private Date storageCompleteTime;

    /**
     * 复核员
     */
    @TableField("quality_user_name")
    private String qualityUserName;

    /**
     * 复核员
     */
    @TableField("quality_user")
    private String qualityUser;

    /**
     * 复核时间
     */
    @TableField("quality_time")
    private Date qualityTime;

    /**
     * 复核完成时间
     */
    @TableField("quality_complete_time")
    private Date qualityCompleteTime;

    /**
     * 关联出库订单
     */
    @TableField("association_order")
    private String associationOrder;

    /**
     * 打印次数
     */
    @TableField("print_num")
    private String printNum;


    @TableField("printNumb")
    private String printNumb;

    /**
     * 托盘id
     */
    @TableField("tray_id")
    private Long trayId;

    /**
     * 托盘编号
     */
    @TableField("tray_number")
    private String trayNumber;

    /**
     * 备货口
     */
    @TableField("stock_port")
    private String stockPort;

    /**
     * 商品id
     */
    @TableField("goods_id")
    private Long goodsId;

    /**
     * 商品名称
     */
    @TableField("goods_name")
    private String goodsName;

    /**
     * 商品编号
     */
    @TableField("goods_number")
    private String goodsNumber;

    /**
     * 商品码
     */
    @TableField("goods_pcode69")
    private String goodsPcode69;

    /**
     * 规格
     */
    @TableField("goods_specs")
    private String goodsSpecs;

    /**
     * 单位
     */
    @TableField("unit")
    private String unit;

    /**
     * 数量
     */
    @TableField("num")
    private String num;

    /**
     * 备注
     */
    @TableField("notes")
    private String notes;

    /**
     * v1
     */
    @TableField("v1")
    private String v1;

    /**
     * 是否置顶(置顶，正常)
     */
    @TableField("not_topping")
    private String notTopping;

    /**
     * 部门id
     */
    @TableField("dept_id")
    private Long deptId;

    /**
     * 交付客户id
     */
    @TableField("deliver_id")
    private Long deliverId;
    
    /**
     * 拆零封箱数
     */
    @TableField("piece_number")
    private String pieceNumber;
    
    /**
     * AGV机器人（1海康、2tusk）
     */
    @TableField("agv_robot")
    private String agvRobot;


    /**
     * 下发数量
     */
    @TableField("sending_num")
    private String sendingNum;

    @TableField("printNumbTime")
    private Date printNumbTime;

    @TableField("agv_storage_task")
    private String agvStorageTask;

    @TableField("pallet_storage_area_flag")
    private String palletStorageAreaFlag;

    @Override
    public String toString() {
        return "HxStorageOut{" +
        "id=" + id +
        ", customerId=" + customerId +
        ", customerName=" + customerName +
        ", storageState=" + storageState +
        ", peisongTime=" + peisongTime +
        ", storageNumber=" + storageNumber +
        ", setUnitId=" + setUnitId +
        ", setUnit=" + setUnit +
        ", setWarehouseId=" + setWarehouseId +
        ", setWarehouse=" + setWarehouse +
        ", getUnitId=" + getUnitId +
        ", getUnit=" + getUnit +
        ", areaId=" + areaId +
        ", areaName=" + areaName +
        ", goodsNum=" + goodsNum +
        ", outNum=" + outNum +
        ", realNum=" + realNum +
        ", outVolume=" + outVolume +
        ", scattered=" + scattered +
        ", createTime=" + createTime +
        ", createUserName=" + createUserName +
        ", storageUserName=" + storageUserName +
        ", storageUser=" + storageUser +
        ", storageTime=" + storageTime +
        ", storageCompleteTime=" + storageCompleteTime +
        ", qualityUserName=" + qualityUserName +
        ", qualityUser=" + qualityUser +
        ", qualityTime=" + qualityTime +
        ", qualityCompleteTime=" + qualityCompleteTime +
        ", associationOrder=" + associationOrder +
        ", printNum=" + printNum +
        ", trayId=" + trayId +
        ", trayNumber=" + trayNumber +
        ", stockPort=" + stockPort +
        ", notes=" + notes +
        ", v1=" + v1 +
        ", notTopping=" + notTopping +
        ", deptId=" + deptId +
        ", deliverId=" + deliverId +
                ", printNumb=" + printNumb +
        "}";
    }
}
